Simple XML is a variation of XML containing only elements. All attributes are converted into elements. Not having attributes or other xml elements such as the XML declaration / DTDs allows the use of simple and fast parsers. This format is also compatible with mainstream XML parsers.
For example:
<Agenda>
<type>gardening</type>
<Activity>
<type>Watering</type>
<golf-course>
<time>6:00</time>
</golf-course>
<yard>
<time>7:00</time>
</yard>
</Activity>
<Activity>
<type>cooking</type>
<lunch>
<time>12:00</time>
</lunch>
</Activity>
</Agenda>
would represent:
<?xml version="1.0" encoding="UTF-8"?>
<Agenda type="gardening">
<Activity type="Watering">
<golf-course time="6:00"/>
<yard time="7:00"/>
</Activity>
<Activity type="cooking">
<lunch time="12:00"/>
</Activity>
</Agenda>
Simple XML uses a simple XPath list for validation. The XML snippet above for example, would be represented by:
/Agenda/type|(Activity/type|(*/time))
or a bit more human readable as:
/Agenda/type
/Agenda/Activity/type
/Agenda/Activity/*/time
This allows the XML to be processed as a stream (without creating an object model in memory) with fast validation.